/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ships.core.icc;

/**
 *
 * @author fqhuy
 */
public class IccTagBasic {
    public class IIccExtensionTag {

        public String GetExtClassName() {
            throw new UnsupportedOperationException();
        }

        public String GetExtDerivedClassName() {
            throw new UnsupportedOperationException();
        }
    };

    public abstract class CIccTag {

        protected CIccTag() {
        }

        public icProfileHeader.icTagTypeSignature GetType() {
            return icProfileHeader.icTagTypeSignature.icMaxEnumType;
        }

        public boolean IsArrayType() {
            return false;
        }

        public boolean IsMBBType() {
            return false;
        }

        public String GetClassName() {
            return "CIccTag";
        }

        public CIccTag Create(icProfileHeader.icTagTypeSignature sig) {
            throw new UnsupportedOperationException();
        }

        public IIccExtensionTag GetExtension() {
            return null;
        }

        public boolean IsSupported() {
            return true;
        }

        public boolean Read(int size, IccIO.CIccIO pIO) {
            return false;
        }

        public boolean Write(IccIO.CIccIO pIO) {
            return false;
        }

        public void Describe(String sDescription) { /*sDescription.empty(); */

        }
        //public icValidateStatus Validate(icTagSignature sig, std::string &sReport, const CIccProfile* pProfile=NULL) const;
        //All tags start with a reserved value.  Allocate a place to put it.
        private int m_nReserved;
    }
}
